home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
EnigmA Amiga Run 1995 October
/
EnigmA AMIGA RUN 01 (1995)(G.R. Edizioni)(IT)[!][issue 1995-10][Aminet 7].iso
/
Aminet
/
util
/
misc
/
CPU112.lha
/
PatchExcept.asm
< prev
next >
Wrap
Assembly Source File
|
1995-01-15
|
1KB
|
77 lines
opt p=68020
START move.l $4.w,a6
jsr _LVOForbid(a6)
lea SetExept(pc),a5
jsr _LVOSupervisor(a6)
lea START-4(pc),a0
clr.l (a0)
jsr _LVOCacheClearU(a6)
jsr _LVOPermit(a6)
moveq #0,d0
rts
cnop 0,4
SetExept lea Except,a0
btst #AFB_68010,AttnFlags+1(a6)
beq.s .68000
movec vbr,a1
move.l $20(a1),OldVec-Except+2(a0)
move.l a0,$20(a1)
move.l a0,$20.w
btst #AFB_68040,AttnFlags+1(a6)
beq.s .skip
opt p=68040
cpusha dc
opt p=68020
.skip rte
cnop 0,4
.68000 move.l $20.w,OldVec-Except+2(a0)
move.l a0,$20.w
rte
dc.b "$VER: PatchExcept 1.2 (15.1.95) by Martin Berndt",0
section Patch,CODE
Exit movem.l (sp)+,d0/a0/a6
OldVec jmp $f80000
cnop 0,4
Except movem.l d0/a0/a6,-(sp)
move.l $4.w,a6
btst #AFB_68010,AttnFlags+1(a6)
beq.s Exit
move.l $e(sp),a0
cmpi.w #$21fc,-8(a0)
bne.s .cont
cmp.l -6(a0),a0
bne.s .cont
cmpi.w #$20,-2(a0)
bne.s .cont
move.l usp,a6
move.l a0,-(a6)
move.l a6,usp
movem.l (sp)+,d0/a0/a6
move.l usp,sp
rts
cnop 0,4
.cont move.w (a0),d0
andi.w #$ffc0,d0
cmpi.w #$40c0,d0
bne.s Exit
ori.b #2,(a0)
btst #AFB_68020,AttnFlags+1(a6)
beq.s .exit
btst #AFB_68040,AttnFlags+1(a6)
bne.s .68040
movec a0,caar
movec cacr,d0
bset #2,d0
movec d0,cacr
bra.s .exit
cnop 0,4
opt p=68040
.68040 cpusha dc
cinva bc
.exit movem.l (sp)+,d0/a0/a6
rte